//封装了前端用户名模块的业务逻辑接口

//查询所有用户
function queryAllUsers() {
    const promise = new Promise((resolve, reject) => {
        $.ajax({
            url: baseUrl + 'users/',
            type: 'GET',
            dataType: 'json',
            success: resp => {
                resolve(resp);
            },
            error: err => {
                reject(err);
            }
        })
    });
    return promise;
}

//新增用户
function saveUser(user) {
    const promise = new Promise((resolve, reject) => {
        $.ajax({
            url: baseUrl + 'users/',
            type: 'POST',
            //注意：如果是发送POST请求，下面的contentType:'application/json',这句话是不能省略的！！！！
            contentType: 'application/json',
            //注意：如果是POST请求，必须把json对象转换为字符串。
            //注意：如果你是用axios框架，不用转换为字符串。
            data: JSON.stringify(user) ,
            dataType: 'json',
            success: resp => {
                resolve(resp);

            },
            error: err => {
                reject(err);
            }
        })
    });
    return promise;
}

//分页查询用户列表
function queryUserPager(currentPageNumber){
    const promise = new Promise((resolve, reject) => {
        $.ajax({
            url: baseUrl + 'users/pager/'+currentPageNumber,
            type: 'GET',
            dataType: 'json',
            success: resp => {
                resolve(resp);

            },
            error: err => {
                reject(err);
            }
        })
    });
    return promise;
}

//根据用户编号查询用户资料
function queryUserInfoByUid(uid){
    const promise = new Promise((resolve, reject) => {
        $.ajax({
            url: baseUrl + 'users/'+uid,
            type: 'GET',
            dataType: 'json',
            success: resp => {
                resolve(resp);
            },
            error: err => {
                reject(err);
            }
        })
    });
    return promise;
}

function modifyUser(user){
    const promise = new Promise((resolve, reject) => {
        $.ajax({
            url: baseUrl + 'users/',
            type: 'PUT',
            //注意：如果是发送POST请求，下面的contentType:'application/json',这句话是不能省略的！！！！
            contentType: 'application/json',
            //注意：如果是POST请求，必须把json对象转换为字符串。
            //注意：如果你是用axios框架，不用转换为字符串。
            data: JSON.stringify(user) ,
            dataType: 'json',
            success: resp => {
                resolve(resp);

            },
            error: err => {
                reject(err);
            }
        })
    });
    return promise;
}

function deleteUser(uid){
    const promise = new Promise((resolve, reject) => {
        $.ajax({
            url: baseUrl + 'users/'+uid,
            type: 'DELETE',
            dataType: 'json',

            success: resp => {
                resolve(resp);
            },
            error: err => {
                reject(err);
            }
        })
    });
    return promise;
}

//批量删除
function deleteUsersList(ids){
    const promise = new Promise((resolve, reject) => {
        $.ajax({
            url: baseUrl + 'users/batch',
            type: 'DELETE',
            dataType: 'json',
            contentType: 'application/json',
            //注意：如果是POST请求，必须把json对象转换为字符串。
            //注意：如果你是用axios框架，不用转换为字符串。
            data: JSON.stringify(ids) ,
            success: resp => {
                resolve(resp);
            },
            error: err => {
                reject(err);
            }
        })
    });
    return promise;
}